java - 格式化传递给Java函数的多个参数
全部标签 如果我有这样的方法:defsum*numbersnumbers.inject{|sum,number|sum+=number}end我怎样才能将数组作为数字传递?ruby-1.9.2-p180:044>sum1,2,3#=>6ruby-1.9.2-p180:045>sum([1,2,3])#=>[1,2,3]请注意,我无法更改sum方法以接受数组。 最佳答案 只是在调用方法的时候放一个splat吗?sum(*[1,2,3]) 关于ruby-如何将数组传递给接受带有splat运算符的属性的
我必须向不确定的URL添加一个新参数,假设param=value。如果实际的URL已经有这样的参数http://url.com?p1=v1&p2=v2我应该将URL转换为另一个:http://url.com?p1=v1&p2=v2¶m=value但是如果URL还没有任何参数,像这样:http://url.com我应该将URL转换为另一个:http://url.com?param=value我担心用Regex解决这个问题,因为我不确定寻找&是否就足够了。我在想也许我应该将URL转换为URI对象,然后添加参数并再次将其转换为字符串。正在寻求已经处于这种情况的人的任何建议。更新为了帮
这可能是一个有点深奥的问题,但我只想知道在这个问题上有哪些最佳实践。 最佳答案 是的,它通常是可以接受的,因为它不违反Ruby语言本身的任何原则,但它最终取决于您的目标受众或框架的实践。(例如,Rails喜欢每个文件一个类。)但是,如果您将具有相关功能的类分组到一个文件中,那么您还应该考虑使它们成为命名空间的同一模块的一部分。 关于ruby-on-rails-Ruby:在一个文件中放置多个类是否可以接受?,我们在StackOverflow上找到一个类似的问题:
我正在使用伪造的格式设置电话号码(意思是,如果我输入xxx-xxx-xxxx,它会转换为字符串,并且还会判断之前是否有(1)以将其删除)。但这对我们的电话号码真的不起作用,它是为国际号码设计的。有没有等价物?谢谢。http://rubygems.org/gems/phony 最佳答案 今年早些时候,我查看了一堆解析和格式化电话号码的rubygem。他们分为许多组(见下文)。TLDR:我用的是“电话”。它可能对您有用,因为您可以指定一个默认国家代码,如果您的电话号码不包含国家代码,它会使用该代码。1)以美国为中心:大骗子(0.1.
在时间紧迫的脚本中,我们有几个地方可以将旧ID转换为字符串。目前,我们在函数内部使用case语句,如下所示:defget_nameidcaseidwhen1"onething"when3"otherthing"else"defaultthing"endend我正在考虑将其替换为哈希查找,如下所示:NAMES={1=>"onething",3=>"otherthing",}NAMES.default="defaultthing"感觉使用NAMES[id]应该比使用get_name(id)更快-但真的是这样吗? 最佳答案 首先,有几点。
我的应用程序布局有两个版本,只有几行不同。考虑以下示例:!!!%html%head#alotofcodehere%body#somemorecodehere-ifdefined?flagandflag==true#variant1-else#variant2问题是,如何将这个标志传递给布局?classApplicationController{:flag=>true}#won'twork:(#...end 最佳答案 在这些情况下,我通常更喜欢使用辅助方法而不是实例变量。这是如何完成的示例:classApplicationContro
出于好奇,有没有办法这样说...user.update_column(:field1,true)user.update_column(:field2,true)...在RubyonRails中在一行中?据我所知,update_columns方法不存在... 最佳答案 您可以按如下方式使用update_all:User.where(:id=>user.id).update_all({:field1=>true,:field2=>true})这将生成以下更新语句(mysql):UPDATEusersSETfield1=1,field2=
我有课,Foo。我希望能够向构造函数传递一个Foo实例,foo并返回相同的实例。换句话说,我希望这个测试通过:classFoo;endfoo=Foo.newbar=Foo.new(foo)assert_equalfoo,bar有人知道我该怎么做吗?我试过这个:classFoodefinitialize(arg=nil)returnargifargendendfoo=Foo.newbar=Foo.new(foo)assert_equalfoo,bar#=>fails但它不起作用。帮忙吗?编辑因为很多人问过我的理由:我正在对大量数据(许多TB)进行快速分析,并且我将拥有大量对象的大量实例。
这个问题完全是关于Struct行为的,所以请不要问“为什么在广泛的体育世界中你要那样做?”此代码不正确,但它应该说明我试图了解的有关RubyStructs的内容:classPerson如您所见,尝试使用Structs定义类继承。但是,当然,当您尝试初始化ReligiousPerson或PoliticalPerson时,Ruby会变得脾气暴躁。因此,鉴于此说明性代码,如何使用这种使用Structs的类继承来继承命名参数? 最佳答案 您可以定义基于Person的新结构:classPerson结果:##在发布我的答案后我立即有了一个想法:
我怎样才能动态设置而不用写相同的代码。现在的代码是这样的:definitialize(keywords:keywords,title:title,url:url,adsetting:adsetting)self.keywords=keywordsself.title=titleself.url=urlself.adsetting=adsettingend如果列表变长,这很快就会失控。在ruby1.9中,我只需将哈希传递给该方法。像这样:definitialize(args)args.eachdo|k,v|instance_variable_set("@#{k}",v)unlessv